﻿using Mes.Application.DTO.Inputs.Operations;
using Mes.Application.DTO.Results.Operations;
using Mes.Domain.BoundedContext;

namespace Mes.Application.Services.Operations
{
    public interface IAttrService
    {
        /// <summary>
        /// 添加属性
        /// </summary>
        /// <param name="attrInput"></param>
        /// <returns></returns>
        Task AddAttributeAsync(AttrInput attrInput);

        /// <summary>
        /// 编辑属性
        /// </summary>
        /// <param name="attrUpdateInput"></param>
        /// <returns></returns>
        Task UpdateAttributeAsync(AttrUpdateInput attrUpdateInput);

        /// <summary>
        /// 删除属性
        /// </summary>
        /// <param name="attr_ids"></param>
        /// <returns></returns>
        Task DeleteAttributeAsync(int[] attr_ids);

        /// <summary>
        /// 查询属性
        /// </summary>
        /// <param name="attr_id"></param>
        /// <returns>AttrResult</returns>
        Task<AttrResult> GetAttributeAsync(int attr_id);

        /// <summary>
        /// 分页查询属性
        /// </summary>
        /// <param name="attrPageInput"></param>
        /// <returns>PagedItemsData<AttrResult></returns>
        Task<PagedItemsData<AttrResult>> GetAttributesAsync(AttrPageInput attrPageInput);
    }
}
